Media data usage measurement and reporting systems and methods

ABSTRACT

Methods and apparatus for media data usage measurement and reporting are disclosed. For example, an example television disclosed herein includes a processor to execute computer readable instructions including monitoring software to at least collect metadata from a media stream, execute a media data usage gathering object to gather and encapsulate usage data associated with presentation of the media stream by the television, the usage data including the metadata, report the usage data to a remote system via a network in communication with the television, and insert an advertisement in the media stream, the advertisement selected based on the reported usage data.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.16/129,763, filed Sep. 12, 2018, which is a continuation of U.S. patentapplication Ser. No. 15/216,680, filed Jul. 21, 2016, which is acontinuation of U.S. patent application Ser. No. 13/968,661, filed Aug.16, 2013, which is a continuation of U.S. patent application Ser. No.12/582,054, filed Oct. 20, 2009, which is a continuation of U.S. patentapplication Ser. No. 10/205,810, filed Jul. 26, 2002, all of which arehereby incorporated by reference herein in their respective entireties.

FIELD OF TECHNOLOGY

The application relates to methods and systems for monitoring usage ofmedia data presented to a user through a user system.

BACKGROUND

There is considerable interest in measuring the usage of media dataaccessed by an audience via a network or other source. In order todetermine audience interest and what audiences are being presented with,a user's system may be monitored for discrete time periods whileconnected to a network, such as the Internet. Large amounts of data maybe compiled in a relatively short period of time, requiring substantialprocessing, bandwidth and storage resources.

There is also considerable interest in providing market information toadvertisers, media distributors and the like which reveals thedemographic characteristics of such audiences, along with informationconcerning the size of the audience. Further, advertisers and mediadistributors would like the ability to produce custom reports tailoredto reveal market information within specific parameters, such as type ofmedia, user demographics, purchasing habits and so on.

In addition, there is substantial interest in the ability to monitormedia audiences on a continuous, real-time basis. This becomes veryimportant for measuring streaming media data accurately, because asnapshot or event generation fails to capture the ongoing and continuousnature of streaming media data usage.

Based upon the receipt and identification of media data, the rating orpopularity of various web sites, channels and specific media data may beestimated. It would be advantageous to determine the popularity ofvarious web sites, channels and specific media data according to thedemographics of their audiences in a way which enables precise matchingof data representing media data usage with user demographic data.

It is also important to ensure relatively little if no interference withthe user and the user's system by this monitoring. If the monitoringsystem unduly interferes with the user or the user's system, individualswill be reluctant to allow monitoring of the media data presented tothem. At the same time, it is necessary to minimize such interference toavoid influencing audience behavior which could bias the monitored data.

However, as mentioned above, vast amounts of media data may be presentedto a user, through a user system, in a very short period of time. Wherethe user's system is employed to monitor media data usage, substantialuser system resources are required by existing systems to accuratelymonitor even for specific media data presented over a short time period,which raises the possibility of interference with the operation of theuser's system.

In addition, a unique problem is encountered when monitoring usage ofstreaming media data from a network. Multimedia streaming delivers asteady stream of video and/or audio over the network connection. Forinstance, the stream may include multiple independent multimediasegments such as advertising. Further, the stream may be associated witha particular network resource such as a web page that offers contenttied to the streaming media data. There are also multiple protocols anddelivery technologies that result in many different types of streamingencoding, servers and players. Also, the streaming media data is oftenassociated with additional media data having diverse formats such as butnot limited to HTML, e-mail, and instant messaging.

The options for accessing and presenting media data, as well as themeans for delivering media data develop and evolve at ever greaterrates. For many years, over-the-air radio and television broadcastingdistributed listening and viewing data in fixed formats and inlong-established and well-defined channels. The task of audiencemeasurement in this environment was relatively much simpler than now,when media data is delivered in many more formats through numerouscommunication systems and protocols which continually evolve. Also,there are vastly more sources for media data at this time, along with amultitude of devices and user agents for accessing and presenting mediadata. To be useful in the long term, an audience measurement system mustbe flexible and scalable while remaining cost efficient.

Therefore, systems and methods are desired that will accurately recordthe media data a user is accessing or is presented through a usersystem, while at the same time not interfering with the user ornoticeably burdening the user system.

It is also desired to match the user's demographic data with datarepresenting what was accessed or presented, and to do so in a mannerwhich is accurate, efficient and as precise as possible.

Systems and methods are further desired that will enable advertisers,media distributors and the like to produce customized media usagereports.

Systems and methods are also desired that will accurately monitorstreaming media data on a continuous and essentially real-time, basis.

It is also desired that the systems and methods be flexible andscalable, yet cost effective, enabling commercially viable media datausage monitoring despite large, rapid and unpredictable changes in usagepatterns and in the needs of those who make use of reports based on thedata gathered.

SUMMARY

For this application the following terms and definitions shall apply:

The term “data” as used herein means any indicia, signals, marks,symbols, domains, symbol sets, representations, and any other physicalform or forms representing information, whether permanent or temporary,whether visible, audible, acoustic, electric, magnetic, electro-magneticor otherwise manifested. The term “data” as used to representpredetermined information in one physical form shall be deemed toencompass any and all representations of the same predeterminedinformation in a different physical form or forms.

The term “media data” as used herein means data which is widelyaccessible, whether over-the-air, or via cable, satellite, network,internetwork (including the Internet), distributed on storage media, orotherwise, without regard to the form or content thereof, and includingbut not limited to audio, video, text, images, animations, web pages andstreaming media data.

The terms “user” or “users” mean a person or persons, respectively, whoaccess media data in any manner, whether alone or in one or more groups,whether in the same or various places, and whether at the same time orat various different times.

The term “user system” as used herein means any software, devices, orcombinations thereof which are useful for requesting, receiving, orpresenting media data for a user, including, but not limited to,computers, televisions, radios, personal digital assistants, andinternet appliances. The term “user system” shall be deemed to includeany data gathering system, device, object or other software thatutilizes user system resources.

The term “network” as used herein includes both networks andinternetworks of all kinds, including the Internet, and is not limitedto any particular network or internetwork.

The term “presentation” as used herein means data in a form perceptibleto a user, whether by sight, hearing, touch or otherwise, or anycombination of these.

The terms “first” and “second” are used to distinguish one element, set,data, object or thing from another, and are not used to designaterelative position or arrangement in time.

The terms “coupled”, “coupled to”, and “coupled with” as used hereineach mean a relationship between or among two or more devices,apparatus, files, programs, media, components, networks, systems,subsystems, and/or means, constituting any one or more of (a) aconnection, whether direct or through one or more other devices,apparatus, files, programs, media, components, networks, systems,subsystems, or means, (b) a communications relationship, whether director through one or more other devices, apparatus, files, programs, media,components, networks, systems, subsystems, or means, and/or (c) afunctional relationship in which the operation of any one or moredevices, apparatus, files, programs, media, components, networks,systems, subsystems, or means depends, in whole or in part, on theoperation of any one or more others thereof.

The term “object” as used herein means a distinct software module orcollection of computer code that possesses (1) data that uniquelyseparates the module or collection of computer code from other similarmodules or collections, (2) attributes constituting a predeterminedsubset of data types describing media data usage and/or media data usersand/or any other supporting data types or users, and (3) behavior which(i) limits access to such attributes by responding only to requestsconforming to a predetermined published interface, and gathers data ofsuch predetermined subset or merges objects which possess such data.

The terms “resource control location” and “RCL” as used herein eachmeans a service, other than a service acting as a user system, whichexercises control over media data provided to a user system and isdeemed to include a source or identity of pre-recorded media data on arecording medium read by a user system. The term “resource controllocation” shall include but not be limited to television and radiostations and channels, as well as entities which exercise control overmedia data supplied via the Internet or other network.

The terms “resource control location session” and “RCL session” as usedherein each means the presentation of media data from a single resourcecontrol location to a user over a continuous time period.

The term “user session” as used herein means one or more resourcecontrol location sessions of a single user grouped according topredetermined criteria.

The term “content metadata” as used herein means data providinginformation about media data, including but not limited to, its resourcecontrol location, artist, author, title, dates, relationships to othermedia data, format, associated user agent, rating, description of itscontent, and/or the like.

In accordance with one aspect of the present invention, a method isprovided for gathering data reflecting usage of media data by a user.The method comprises receiving a plurality of media data in a usersystem; using each of a plurality of media data usage gathering objectsfunning on the user system to collect data reflecting usage of arespectively different portion of and/or user agent for the plurality ofmedia data received by the user system; and using a session object tomerge predetermined ones of the plurality of data gathering objectscorresponding to a respective user session and/or RCL session.

In accordance with another aspect of the present invention, a method isprovided for gathering data reflecting usage of media data by a user bymeans of a user system. The method comprises running a media data usagegathering object on the user system; receiving media data in the usersystem; monitoring the usage of the media data by means of the mediadata usage gathering object running on the user system to produce mediausage data; and encapsulating the media usage data in the media datausage gathering object.

In accordance with yet another aspect of the present invention, a systemis provided for gathering data reflecting usage of media data by a userof a user system. The system comprises a plurality of media data usagegathering objects each for collecting data reflecting usage of arespectively different portion of and/or user agent for, a plurality ofmedia data received by the user system; and a session object to mergepredetermined ones of the plurality of media data usage gatheringobjects corresponding to a respective user session and/or RCL session.

In accordance with a further aspect of the present invention, a methodis provided for gathering data reflecting usage of media data by a user.The method comprises receiving media data in a user system; selecting atleast some of the media data based upon predetermined criteria; in theuser system compiling address data for the selected media data into areport object; and transmitting the report object to a remotely locatedprocessor.

In accordance with yet another aspect of the present invention, a methodis provided for generating reports on usage of media data by users ofone or more user systems. The method comprises receiving report objectsgenerated by a user system and transmitted to a reporting system, eachof the report objects reflecting usage of media data by a user of a usersystem; assembling the transmitted report objects into a macro report;coordinating and collecting macro reports and/or report objects fromother reporting systems; and formatting macro reports for presentation.

In accordance with still another aspect of the present invention, amethod is provided for gathering data concerning usage of media data bya user by means of a user system. The method comprises providing a firstdata gathering object for gathering within the user system usage datarepresenting media data presented to the user within a respective usersession and/or RCL session; providing a second data gathering object forgathering qualitative data; and providing a session object that mergesthe first and second data gathering objects within the user system.

In accordance with a further aspect of the present invention, a systemis provided for gathering data reflecting usage of media data by meansof a user system. The system comprises software for measuring the usageof media data including: a plurality of media data usage gatheringobjects each to collect data within the user system reflecting usage ofa respectively different portion of and/or user agent for, a pluralityof media data received by the user system; and a session object to mergepredetermined ones of the plurality of media data usage gatheringobjects corresponding to a respective user session and/or RCL session.

In accordance with yet another aspect of the present invention, a systemis provided for gathering data reflecting usage of media data by a userby means of a user system. The system comprises a data gathering objectin the user system for monitoring usage of the media data based onpredetermined criteria; wherein the data gathering object selects andencapsulates usage data representing usage of at least some of the mediadata based upon the predetermined criteria.

In accordance with yet another aspect of the present invention, a systemis provided for generating reports depicting usage of media data byusers of one or more user systems comprising: report objects generatedby a user system and transmitted to a reporting system, each reflectingusage of media data by a user of a respective user system; a macroaggregator process naming on the reporting system for collecting thetransmitted report objects for producing macro reports based on aplurality of the report objects; and a presentation process running onone of the reporting system and a client thereof for formatting themacro reports to produce a presentation.

The invention and its particular features and advantages will becomemore apparent from the following detailed description considered withreference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an embodiment of a system forgathering data reflecting usage of media data presented to a user bymeans of a user system;

FIG. 1A is a block diagram of a transmission service of the FIG. 1embodiment;

FIG. 2 is a block diagram illustrating another embodiment of a systemfor gathering data reflecting usage of media data presented to a user bymeans of a user system;

FIG. 3 is a block diagram illustrating yet another embodiment of asystem for gathering data reflecting usage of media data presented to auser by means of a user system;

FIG. 4 is a block diagram illustrating a further embodiment of a systemfor gathering data reflecting usage of media data presented to a user bymeans of a user system;

FIG. 5 is a block diagram of a report generation system for producingreports of media data usage; and

FIG. 6 is a block diagram of a further report generation system forproducing reports of media data usage;

DETAILED DESCRIPTION OF CERTAIN ADVANTAGEOUS EMBODIMENTS

FIG. 1 illustrates a media data usage system 100 in which a user 102 ispresented with media data by means of a user system 104. The user system104 is coupled with a network 106 in order to access media data and/orpresent media data to the user 102. The user system 104 incorporates alocal source of media data 105 from which the user system 104 alsoobtains media data for presentation to the user 102. The local source105 may be, for example, a hard drive or other storage device or deviceswhich store prerecorded media data and/or media data downloaded vianetwork 106 and stored in local source 105 for later presentation touser 102. The user system may also serve to obtain a combination ofmedia data both via network 106 and from local source 105 forsimultaneous presentation to user 102 or combined in a stream of audioand/or video media data. The user system 104 is coupled with the network106 in any available manner, including but not limited to over-the-air(wireless), cable, satellite, PSTN (Public Switched Telephone Network),DSL (Direct Subscriber Line), LAN (Local Area Network), WAN (Wide AreaNetwork), intranet, and/or the Internet. The user system 104incorporates a media usage monitoring processor 107 which implements amedia data usage monitoring service within the user system 104. However,unlike previously proposed techniques the processor 107 not only gathersdata representing usage of media data by means of the system 104, butalso processes the gathered data to produce micro-level report objectsfor use by a reporting system in producing reports concerning usage ofmedia data. Essentially, the processor 107 carries out its tasks bymanaging media data usage gathering objects 108 which serve to gatherthe usage data initially, session objects 110 which merge the objects108 into user sessions and/or RCL sessions and micro-level reportobjects 111 which merge the session objects and/or other data gatheringobjects for reporting purposes.

In certain embodiments, the processor 107 is implemented by a dedicateddevice as a peripheral of the user system 104 or as a board or otherdevice inserted within the user system 104 or otherwise coupledtherewith. In certain implementations of these embodiments, the deviceis a programmable device provided with pre-stored instructions toimplement processor 107. In other implementations, software for theprocessor 107 is downloaded to the device via the network 106 or othercommunication medium or loaded therein from a storage medium. In otherembodiments the processor 107 is implemented in software running on theuser system, and loaded therein from the network 106 or othercommunication medium, or from a storage medium.

In certain embodiments the processor 107 is dedicated to monitoringusage by only a single user. In other embodiments, the processor 107monitors usage by two or more users of the user system 104.

The processor 107 instantiates the media data usage gathering object 108which runs within the processor 107 or elsewhere in user system 104 forgathering usage data representing usage of media data by the user. Theobject 108 serves to gather usage data for a single predeterminedcategory of media data, such as graphical data, audio data, streamingmedia data, video data, text, web pages, image data, and the like. Inthis manner, the object 108 preprocesses the usage data by selecting thedata based upon predetermined criteria. In certain embodiments, eachobject 108 is dedicated to monitoring usage of media data of only oneformat, such as jpg image data, avi data, streaming media data to bereproduced by a certain player type, html, documents, bmp image data,etc. In certain embodiments, each object 108 is dedicated to monitoringusage of media data presented by means of only one type of user agent,such as a particular browser, player, etc. As new or different dataformats and user agents become available, new or different objects 108and/or object classes are provided to the processor 107 to enablemonitoring thereof. The objects and object classes are received by theprocessor 107 via network 106 or other communication medium, or elsefrom a storage medium. The monitoring capabilities are thus updatedquickly and efficiently to keep pace with the ongoing, rapid evolutionof media data formats and user agents.

In certain embodiments, the data gathered by object 108 represents mediausage events such as the opening or closing of a user agent, a requestfor or receipt of new or different content or resource control locationchannel, scrolling, volume change, muting, onclick events, maximizing orminimizing a window, an interactive response to received content (suchas a submission of a form or order), and/or the like. In otherembodiments, the object 108 polls for predetermined media data stateinformation, such as currently received content or currently accessedresource control location and/or the state of a user agent. Depending onthe embodiment, the object 108 records either changes in state and/orthe state itself. In further embodiments, the object 108 collectscontent metadata accompanying or associated with the media data. Inother embodiments combinations of the foregoing are employed. In certainembodiments the attributes of the object 108 include times or durationsof the events or state information.

In certain embodiments the object 108 gathers data at the board level(for example, a sound card), while in other embodiments it gathers dataat the network level. In still other embodiments it gathers data at theoperating system level, while in still further embodiments it gathersdata at the application level (for example, a player, viewer or otherapplication). In yet still further embodiments, the object 108 gathersdata at two or more of the foregoing levels.

The processor 107 instantiates the session object 110 which runs withinthe processor 107 or elsewhere in user system 104 for merging the mediadata usage gathering object 108 into a respective session object whichgathers data for a respective user session.

In certain embodiments the user session is defined by grouping mediadata usage gathering objects based on time or duration criteria. Invarious such embodiments, media data usage gathering objectsrepresenting usage (presentation or access) within each of predeterminedtime periods (such as dayparts or days) are grouped in correspondinguser sessions. In other such embodiments, media data usage gatheringobjects representing one or more continuous and/or overlapping resourcecontrol location sessions are grouped in a single user session, while infurther such embodiments media data usage gathering objects representingresource control location sessions separated in time by no more than apredetermined period are grouped into a single user session. In stillother such embodiments combinations of the foregoing criteria areemployed to group the objects into user sessions.

In other embodiments the user session is defined by grouping media datausage gathering objects based on indications of user activity. Invarious such embodiments, user inputs (for example, by means of akeyboard, keypad, pointing device, dial, remote control or touch screen,or an activity such as the insertion of prerecorded media in a diskdrive, tape player or the like) are monitored to detect continuing useractivity to determine the duration of a user session.

In further embodiments, users are asked to indicate the beginning and/orthe end of a user session.

In certain embodiments of the invention one or more of the followingattributes are included in the session objects:

-   -   (1) “Session start”: the time that an RCL is first accessed by        the user system and the media data is delivered thereto, or else        when such media data is first presented to the user;    -   (2) “Session stop”: the time that the user system ceases to        access the RCL, or else when presentation of its media data to        the user ceases;    -   (3) “Session duration”: the duration of a user session, which        may be measured as the length of time between Session start and        Session stop;    -   (4) “Session content”: the type and identity of the presented or        accessed media data;    -   (5) “Session interaction”: user interaction events occurring        during a user session;    -   (6) “Session content events”: media data events occurring during        a user session;    -   (7) “Session context”: system events occurring during a user        session;    -   (8) “Session metadata”: data describing the user session and any        supporting data.

The processor 107 instantiates the micro-level report object 111 whichserves to merge session objects and/or other objects into itself, and/orto encapsulate data, for supply to one or more reporting systems forproducing media usage reports. In certain embodiments, the object 111merges one or more session objects representing the media data usage ofa single user into a corresponding micro-level report object, while inothers the object 111 merges session objects into a micro-level reportobject representing media data usage by multiple identified users. Incertain embodiments the object 111 merges one or more session objectsrepresenting media data usage within a predetermined time span, while inother embodiments the object 111 merges session objects in response to arequest from a reporting system 112 coupled with the user system 104either through the network 106 or via a different communication medium.

In certain embodiments, the media data usage-gathering object 108provides its data directly to the micro-level report object, rather thanmerging into a session object. This feature enables the micro-levelreport object to gather and encapsulate data at levels other than a usersession level. One particularly advantageous, but not exclusive,application for this feature is the ability to gather and convey datarepresenting a respective RCL session on a given user system. Thiscapability permits media usage data to be collected, inter alia, forinterim reporting. Interim reporting capability is desired formonitoring ongoing usage trends in the case of streaming media of arespective RCL, to enable dynamic streaming adjustments based onreal-time user profiles and habits. For example, the choice of anadvertisement to insert in the stream can be based on monitoring of suchusage trends in this manner.

In certain other embodiments, an RCL session object is provided to mergemedia data usage gathering objects representing usage within arespective RCL session. The RCL session object either gathers data untilmerged into a micro-level report object for interim reporting, or elsemerges media data usage gathering objects representing usage within allor part of a respective RCL session. In certain embodiments, amicro-level report object merges one or more RCL session objects for agiven RCL session to provide a report of the RCL session.

In certain embodiments, the micro-level report objects 111 are arrangedto report media usage data for one or more user sessions and/or RCLsessions in response to selectable parameters including a defined timeperiod, one or more designated RCL's and/or users. In various ones ofthe embodiments in which media usage data is reported by micro-levelreport objects 111, the objects 111 are also arranged to gather and/ormerge objects which gather quality of service data from the user system,including bandwidth usage, network quality, sound quality and/or videoquality for one or more user sessions, RCL and/or RCL sessions.

In certain embodiments, the object 111 merges session objects and/orother objects, or gathers data, reflecting usage of only a single typeof media data, while in other embodiments the object 111 merges objectsand/or gathers data representing usage of multiple different types ofmedia data. In still further embodiments, various combinations of theforegoing parameters are used by the object 111 to merge the objectsand/or gather data.

A bi-directional object transmission/reception service 113 isimplemented by the user system either within the processor 107 orexternal thereto. The service 113 communicates with a reporting system112 to receive requests for micro-level report software running on theuser system, and loaded therein from the network 106 or othercommunication medium, or from a storage medium.

An embodiment of the object transmission/reception service 113 isillustrated in FIG. 1A. In use to communicate a micro-level reportobject 111 to the reporting system 112, an object serialization process120 of service 113 serializes the micro-level report object 111 intodata capturing all identity, state and behavior of the object 111. Whileany serialization technique may be implemented by process 120, incertain embodiments the process 120 employs a binary objectserialization technique that translates the identity, behavior and stateof object 111 into a binary data stream. In other embodiments, theprocess 120 performs a Simple Object Access Protocol (SOAP) compliantserialization of the object 111. In further embodiments, an HTTPrequest/reply protocol is employed. Preferably, but not necessarily, theprocess 120 supports multiple serialization algorithms to facilitatecommunication with various reporting systems 112 as well as with one ormore utility services 114.

An object compression/decompression process 124 subjects the serializedobject 111 to no-loss compression, in accordance with any appropriatetechnique. Preferably, but not necessarily, the process 124 supportsmultiple compression algorithms to facilitate communication with variousreporting systems 112 and one or more utility services 114.

An encryption/decryption process 128 encrypts the compressed object 111by means of any technique providing sufficient security to preserve theintegrity of the report object 111 by protecting it against tamperingand user manipulation. As in the case objects from a single utilityservice 114 which supplies the same to all media data monitoringprocessors in all user systems which cooperate to provide reports ofmedia data usage to the reporting system 112. The communications fromutility service 114 preferably are implemented by a transmission servicecorresponding to service 113. Accordingly, such communications whenreceived by service 113 are first received by the objecttransmission/reception process 132 implementing the appropriatecommunication protocol and then decrypted by process 128 anddecompressed by process 124. Then the decompressed communication isreconstituted by process 120 for use by processor 107.

FIG. 2 illustrates a further media data usage system 200 in which a user202 is presented with or accesses media data by means of a user system204. The user system 204 may be connected to a network 206 in order toaccess or present the media data to the user 202. The user system 204also incorporates a local source of media data (not shown for purposesof simplicity and clarity), corresponding to local source 105 of FIG. 1.

The user system 204 incorporates a media usage monitoring processor andan object transmission/reception service (not shown for purposes ofsimplicity and clarity) corresponding to processor 107 and service 113of FIG. 1. In addition, the processor incorporated in user system 204serves to create and manage multiple instances of media data usagegathering objects 208, 208′, 208″, . . . 208 _(n) corresponding toobject 108 of FIG. 1 which run concurrently and/or at various differingtimes in order to track usage of different respective media data typesand/or user agents. For example, if user of process 120 and 124, it ispreferable, but not necessary, that process 128 implement multipleencryption algorithms to facilitate communication with various reportingsystems 112 and one or more utility services 114.

An object transmission/reception process 132 serves to establishcommunication with the reporting system 112 and/or the utility service114 via network 106 or other communication medium. Where the objecttransmission/reception service 113 communicates with the system 112 viathe Internet, or other TCP/IP network, for example, the process 132implements the TCP and IP layers and maintains the connection with thereporting system 112 and one or more utility services 114. Preferably,but not necessarily, the process 132 supports multiple communicationsprotocols to facilitate communications with reporting system 112 and oneor more utility services 114.

In certain embodiments, one or more of the processes 120, 124, 128 and132 of service 113 are also utilized by other applications running onuser system 104 for communications, while in other embodiments theprocesses 120, 124, 128 and 132 are utilized only for communicationsto/from processor 107, including transmission of micro-level reportobjects 111.

As noted above, object transmission/reception service 113 supportsbi-directional communication by the processor 107. In certainembodiments, this capability is employed to obtain from utility service114 updates to the objects 108, 110 and 111 as well as to add newobjects and object classes, such as new types of media data usagegathering objects for monitoring usage of new or different types ofmedia data and/or user agents. Preferably, but not necessarily,processor 107 receives such updates and new objects and to communicatethe requested objects thereto. The service 113 also receives updatedobjects and object classes from a utility service 114. In certainembodiments, the service 114 is implemented by the reporting system 112,while in others it is implemented separately therefrom. Communicationsbetween service 113 and reporting system 112, as well as between service113 and utility service 114 in certain embodiments are conducted vianetwork 106, while in others such communications are conducted via adifferent communication medium.

In certain advantageous embodiments, multiple reporting systemsdistribute reporting services among multiple network nodes at whichreporting entities or customers of reporting entities produce eitherstandardized or customized reports from micro-level report objectsobtained from multiple participating user systems, such as user system104. In such embodiments, the micro-level report objects are implementedas network-mobile objects capable of being communicated to multiple,distributed reporting nodes and assembled into either standardmacro-level reports constructed from multiple micro-level reportobjects, or custom-created macro reports assembled from micro-levelreport objects using whatever parameters the reporting entity orcustomer may wish to choose.

In certain embodiments the service 113 is implemented by means of adedicated device as a peripheral of the user system 104 or as a board orother device inserted within the user system 104 or otherwise coupledtherewith. In such embodiments the service 113 preferably, but notnecessarily, is implemented by a device which also implements theprocessor 107. In other embodiments the service 113 is implemented in202 opens a browser, in certain embodiments the processor instantiates abrowser usage data gathering object to track its usage. If an audioand/or video player is also opened while the browser is in use, theprocessor instantiates a player usage data gathering object to track itsusage separately from the browser. The same is also done in order totrack usage of other types of user agents such as a chat application.

In further embodiments, separate usage gathering objects track usage ofdifferent media data. For example, one object will track use of a webpage while one or more other objects will monitor advertisements whichrun within or appear in separate pop-up and/or pop-under windows. Instill further embodiments, one set of objects tracks usage of differenttypes of user agents while others monitor usage of multiple respectivemedia data presented by means of a single user agent. The usagemonitoring system, therefore, automatically gathers data concerningusage of multiple different media data types and/or user agent typesinto different respective objects, so that the gathered data is easilyaccessible by type of media data used or user agent employed. Theprocessor is also capable of creating and managing multiple instances ofsession objects 210, 210′, 210″, . . . 210 _(n) which run concurrentlyand/or at various different times in order to merge appropriate ones ofthe objects 208, 208′, 208″, . . . 208 _(n) into respective usersessions. Each such object gathers media data usage data into objectseach representing activity during a respective user session, and thusserves to pre-process this data to facilitate preparation of media usagereports at a later stage. Excess processing, storage and communicationbandwidth resources of the user system 204 are thus utilized to producesession objects arranging usage data by session, media data type and/oruser agent type. The session objects then are analogous to buildingblocks that may be assembled efficiently into any number of reports eachstructured as desired according to selected reporting parameters. Thestructures of the reports may be standardized or designed on an ad hocbasis to best serve the needs of a user of the reporting system.Preferably, the processor 107 and service 113 track the ongoing extentto which user system and communication resources are being used in orderto adjust their demands on these resources to avoid interference withother applications and communications employed by the user.

As in the embodiments of FIG. 1, the session objects are merged intomicro-level report objects for communication to one or more reportingsystems (not shown for purposes of simplicity and clarity).

FIG. 3 illustrates a still further media data usage system 300 in whicha user 302 is presented with or accesses media data by means of a usersystem 304. The user system 304 may be connected to a network 306 inorder to access media data. As in the case of the FIG. 2 embodiment, theuser system 304 also incorporates a local source of media data (notshown for purposes of simplicity and clarity) corresponding to localsource 105 of FIG. 1.

The user system 304 incorporates a media usage monitoring processor (notshown for purposes of simplicity and clarity) which serves toinstantiate and manage one or more media data usage gathering objects308 serving the same purpose as objects 108 of FIG. 1. The processoralso instantiates and manages one or more qualitative data gatheringobjects 310 which serve to gather qualitative data concerning the usersof user system 304. The qualitative data gathering objects 310 incertain embodiments collect and/or store basic demographic data whichcan include user age, sex, race, ethnicity, marital status, and/orlocation. In additional embodiments the objects collect and/or storefurther user-specific information which can include spending habits,interests, lifestyle, education, occupation and/or income. Suchqualitative data is gathered, for example, by a request to the userpresented through user system 304 and/or from databases which store suchinformation.

In certain embodiments, the objects 310 collect and/or store qualitativedata constituting system data, such as system type, operating system,types of user agents (such as browser, players and the like). Such datamay be collected by objects 310 directly from user system 304. Infurther embodiments the objects 310 collect and/or store qualitativedata of two or more of the foregoing types. In short, each of theobjects 310 is arranged to collect a subset of the various qualitativedata types. In certain embodiments, the objects 310 are updated fromtime to time to enable the collection and/or storage of new or differentdata and/or data types.

The processor also instantiates and manages one or more session objects312 which serve to merge the media data usage gathering objects 308 andqualitative data gathering objects 310 into respective user sessionsand/or RCL sessions. In this manner, the session objects encapsulatesession data describing both media data usage as well as userdemographics and/or system information. In this manner, any and all datadesired for describing a given user session and/or RCL session ispre-processed by the user system 304, thus taking advantage of excessprocessing and storage resources thereof. This contrasts with previouslyproposed techniques in which qualitative data would be merged withquantitative media data usage monitoring data at a centralizedprocessing facility. Not only does the invention in its present aspectreduce the processing and storage requirements outside the user system,but it also unites media usage measurement data with demographic andother qualitative data at the earliest stage which permits theproduction of reports which “drill down” to the user or RCL sessionlevel, thus providing greater reporting precision and flexibility.

Through the use of distributed data collection and processing by meansof various data collection and processing objects, the monitoring systemof the present invention enables rapid scalability as well as theability to adjust the monitoring system over time without interruptionto accommodate evolving needs to track new and different forms of mediadata usage, user systems and demographic categories. This is achieved bydownloading updated and new object classes to the processors operatingin various user systems.

The session objects 312 are merged into a micro-level report object 314for communication to a reporting system 316. Preferably, the micro-levelreport object 314, as well as object 111 of FIG. 1 are arranged to havenetwork mobility to enable report generation both in systems 112 and 316as well as at other nodes and systems in certain embodiments as well asdistributed report generation capabilities in still other embodiments.

FIG. 4 illustrates a media data usage monitoring system 500, forgathering usage data representing usage of media data presented to auser 502. The user 502 accesses or is presented with media data by meansof a user system 504. The user system 504 may be connected to a network506 in order to access or present the media data to the user 502. Theuser system 504 also incorporates a local source of media data (notshown for purposes of simplicity and clarity), corresponding to localsource 105 of FIG. 1.

A micro-level report object 508, is generated, serialized, compressedand encrypted in the user system 504 in accordance with any of theforegoing embodiments for transmission to a reporting system 510. Oncethe micro-level report object 508 is received by reporting system 510,it is reconstituted for utilization. Reporting system 510 aggregates andorganizes numerous micro-level report objects 508 received from the usersystem 504 as well as from other user systems, in order to produce amacro report 514 in response to a command from a report requester 506such as an entity providing such reports to customers in exchange for alicense fee or an entity that wishes to make direct use of such reports.

Reporting system 510 has access to a library 512 containing variousinformation for identification of the resource control locations (RCL's)of the media data contained in the micro-level report object 508. Thelibrary 512 is particularly useful in those instances in which theidentity of the RCL is not included in metadata accompanying thereceived media data. The library 512 comprises an RCL map of variousURL's, for instance, for identifying the RCL's of the gathered mediadata based on its URL or URL's. The RCL map is compiled in one or moreways. In certain embodiments, the RCL itself provides the necessary datafor inclusion in library 512. In other embodiments, the data is compiledautomatically by a service associated with library 512 which gathersURL's while accessing various RCL's. In further embodiments, the data iscompiled by manual input. In still further embodiments, the data iscompiled by comparing URL's corresponding to known resource controllocations with URL's for other pages, streams or other media data andassociating similar URL's with the same RCL. For example, two URL'shaving the same root may be deemed associated with the same resourcecontrol location. In still other embodiments, tags, metadata and/orcontent of various media data are compared to determine their RCL's. Instill further embodiments combinations of the foregoing techniques areemployed. In one embodiment, the library 512 resides in a centralizedlocation, which facilitates updating the data contained thereon.Alternatively, the library 512 resides in various locations on varioussystems, either local or remote.

RCL mapping is also utilized for identifying the resource controllocation of predetermined streaming media data contained in themicro-level report object 508 even though a streaming resource may havemany URL's mapped to the same RCL. The streaming media data however, ismapped to a specific streaming RCL.

In certain embodiments, library 512 also provides further data useful toreporting system 510, including time of day, related RCL information,and supplemental demographic information, such as information onspending habits, income, interests and any other data of potentialinterest to advertisers or providers of media data concerning users orhouseholds. In further embodiments one or more of these data services isprovided by systems separate from library 512. In still others, one ormore of these services, including an RCL-mapping service, aredistributed among multiple servers on one or more networks.

FIG. 5 illustrates a report generation system 600, including a reportingsystem 602, for generating reports based upon data in the form of atleast one micro-level report object 606, received from at least one usersystem 604. The reporting system 602 also has access to numerousmicro-level report objects (606, 606′, 606″, . . . 606 _(n)), fromnumerous user systems (604, 604′, 604″, . . . 604 _(n)) for producingmacro reports selectively on either a standard or customized basis inresponse to report generation parameters input to the system.

Reporting system 602 has access to library 612 containing informationfor identification of the RCL of the media data whose usage is reportedin micro-level report objects (606, 606′, 606″, . . . 606 _(n)),received from the same and/or various user systems (604, 604′, 604″, . .. 604 _(n)). The library 612 again may comprise a comprehensive RCL mapof numerous URLs, for instance, for identification of the gathered mediadata. In certain embodiments, the library 612 provides furtherinformation (as described above in connection with FIG. 4), and in otherembodiments the services provided by library 612 are provided bymultiple distributed systems.

A report requester 608, may request reporting system 602 to generate oneor more macro reports 610 based on various micro-level report objects(606, 606′, 606″, . . . 606 _(n)). The report requester 608 suppliesreporting system 602 with a request for a macro report either of astandard or customized type. If a customized report type is requested,the request includes parameters defining the types of media data, users,time periods, etc., which define the scope and content of the desiredcustomized report. Reporting system 602 assembles the requiredmicro-level report objects, specified by report requester 608, to formmacro reports 610, which are combined reports on overall media datausage. Reporting system 602 can assemble micro-level report objects(606, 606′, 606″ . . . 606 _(n)) along various parameters to offerappropriate information relating to specific media data and/ordemographic parameters. Macro reports 610 may be created on-demand ormay be pre-scheduled for generation and delivery.

FIG. 6 illustrates a report system 702. Report system 702 comprises amacro-manager process 714 which manages further objects and externalresources to produce reports for provision to a report requester 718.System 702 further comprises a macro-aggregator process 704 thatcollects and manages various micro-level report objects (706, 706′, . .. 706 _(n)) received from various user systems (708, 708′, . . . 708_(n)). Report system 702 also includes a scheduler process 710 forsaving various reporting schedules and reports. Report system 702further comprises a presentation process 712 for formatting macroreports for various presentation mediums.

The macro-aggregator object 704 in certain embodiments receives themicro-level report objects 706 according to a schedule retained by eachuser system 708, 708′, . . . 708 _(n). In certain other embodiments, theprocess 704 requests the micro-level report objects 706 from the varioususer systems pursuant to a schedule maintained by scheduler process 710in report system 702. In further embodiments, the process 704 requeststhe micro-level report objects 706 in order to fulfill a request for areport received from report requester 718. In still further embodiments,combinations of the foregoing techniques are employed.

In one or more such embodiments, the process 704 communicates requeststo the various user systems 708, 708′, . . . 708 _(n) for micro-levelreport objects reflecting ongoing usage of streaming media. Suchrequests from process 704 in some cases result from receipt of anongoing streaming media usage report request from requester 718 seekinginformation on the present size and/or composition of an audience forstreaming media of one or more predetermined resource control locations.Such reports enable the requester 718 or its customer to maximize itsadvertising revenues by targeting the ads to the present audience and/orbased on the actual number of users who received certain advertisements.In other embodiments, when process 704 receives one or more micro-levelreport objects from a user system 708, 708′, . . . 708 _(n) indicatingcurrent usage of streaming media from an RCL of interest, process 704automatically requests further such micro-level report objects from suchuser system to produce an ongoing usage report pursuant to a priorrequest from a report requester 718.

The macro-aggregator process 704 stores the received objects 706, 706′,. . . 706 _(n) in a database for subsequent access according to theirattributes, such as time, demographic characteristics, RCL, type ofmedia data used, etc. It is thus possible to quickly and efficientlyproduce macro reports according to standardized parameters orcustom-designed parameters. Each micro-level report object represents adistinct media data usage experience which may be accessed according toany of multiple different selected parameters and assembled with othersuch objects in a process-efficient manner which provides flexiblereporting capabilities to meet the needs of each requester.

Macro reports at times are produced by the macro-aggregator process 704in response to a command received from scheduler process 710 pursuant toa report schedule maintained thereby. Once produced, the macro-reportsare stored by scheduler process 710 to be provided to requestersaccording to a reporting schedule also maintained by process 710 or inresponse to a request from requester 718.

Presentation process 712 serves to format the produced macro reportsaccording to a presentation format specified by requester 718 or else ina default or other predetermined format. In certain embodiments, suchformats may be selected as appropriate for browsers running on acomputer, for Internet appliances, PDA's, facsimile, email, printedreports, audible reports, and the like. In certain embodiments, adifferent respective presentation process 712 is provided for eachdifferent presentation format.

In certain embodiments a single report system 702 gathers themicro-level report objects and serves the various report requesters 718.In other embodiments, multiple such report systems 702 distribute thereporting tasks. In further embodiments the services provided by one ormore reporting systems are distributed among two or more differentsystems. In some of such further embodiments, a macro report aggregatorprocess is implemented by one or more servers which supply macro-reportson schedule or on demand to one or more clients which receive requestsfor reports from requesters and format the macro reports forpresentation to such requesters. In certain embodiments one or more ofthe services provided by the report system 702 are implemented by aclient running on a requester system. For example, in some suchembodiments such a client implements both the scheduling andpresentation services implemented by system 702 of FIG. 6. Theobject-oriented design of the system enables multiple different kinds ofimplementations.

The object-oriented design of the reporting and utilities servicesprovide substantial flexibility in the physical architecture adopted toimplement these services. In an Internet (or other network) based serverarchitecture, the various reporting and/or utilities services aredistributed among various servers. In some embodiments of server-basedservices, the servers are arranged in a hierarchy to efficientlydistribute the services according to priority and/or scope. Inembodiments which employ a P2P architecture, all of the reporting and/orutilities services are distributed among clients, although preferablycertain services such as object and object class updating services arecoordinated to ensure system integrity. In hybrid embodiments,combinations of the foregoing architectures are employed. For example,heavy users of reporting services might implement the services on theirown client machines, while users who use fewer reports or obtain themless frequently might receive preformatted reports from a report server.

Although the invention has been described with reference to particulararrangements and embodiments of services, systems, processors, devices,features and the like, these are not intended to exhaust all possiblearrangements or embodiments, and indeed many other modifications andvariations will be ascertainable to those of skill in the art.

What is claimed is:
 1. A television comprising: memory includingcomputer readable instructions, the computer readable instructionsincluding monitoring software; and a processor to execute the computerreadable instructions including the monitoring software to at least:execute a first object to collect and store usage data including atleast one of a volume change event or a mute event associated withoperation of an application executed by the television to present mediaassociated with a media stream; execute a second object to collect andstore system data corresponding to the television, the system dataincluding a type of the television and a type of the applicationexecuted by the television to present the media associated with themedia stream; compress the usage data to form compressed usage data;encrypt the compressed usage data to form encrypted usage data; reportthe system data to a remote system via a network in communication withthe television; transmit the encrypted usage data to the remote systemvia the network to report the usage data to the remote system; andinsert an advertisement in the media stream, the advertisement selectedbased on at least the reported usage data.
 2. The television of claim 1,wherein the monitoring software is downloaded to the memory via thenetwork.
 3. The television of claim 2, wherein the processor is toobtain an upgrade to the monitoring software via the network.
 4. Thetelevision of claim 1, wherein the processor is to execute themonitoring software to: gather metadata associated with the mediastream; and report the metadata to the remote system via the network. 5.The television of claim 1, wherein the processor is to report the usagedata and the system data in response to a request from the remotesystem.
 6. A storage device or storage disk comprising computer readableinstructions that, when executed, cause a processor of a television toexecute monitoring software to at least: execute a first object tocollect and store usage data including at least one of a volume changeevent or a mute event associated with operation of an applicationexecuted by the television to present media associated with a mediastream; execute a second object to collect and store system datacorresponding to the television, the system data including a type of thetelevision and a type of the application executed by the television topresent the media associated with the media stream; compress the usagedata to form compressed usage data; encrypt the compressed usage data toform encrypted usage data; report the system data to a remote system viaa network in communication with the television; transmit the encryptedusage data to the remote system via the network to report the usage datato the remote system; and insert an advertisement in the media stream,the advertisement selected based on at least the reported usage data. 7.The storage device or storage disk of claim 6, wherein the instructions,when executed, cause the processor to download the monitoring softwareto memory via the network.
 8. The storage device or storage disk ofclaim 7, wherein the instructions, when executed, cause the processor toobtain an upgrade to the monitoring software via the network.
 9. Thestorage device or storage disk of claim 6, wherein the instructions,when executed, cause the processor to execute the monitoring softwareto: gather metadata associated with the media stream; and report themetadata to the remote system via the network.
 10. The storage device orstorage disk of claim 6, wherein the instructions, when executed, causethe processor to report the usage data and the system data in responseto a request from the remote system.
 11. A method comprising: executing,with a processor of a television, a first object to collect and storeusage data including at least one of a volume change event or a muteevent associated with operation of an application executed by thetelevision to present media associated with a media stream; executing,with the processor, a second object to collect and store system datacorresponding to the television, the system data including a type of thetelevision and a type of the application executed by the television topresent the media associated with the media stream; compressing, byexecuting monitoring software with the processor, the usage data to formcompressed usage data; encrypting, by executing the monitoring softwarewith the processor, the compressed usage data to form encrypted usagedata; reporting, by executing the monitoring software with theprocessor, the system data to a remote system via a network incommunication with the television; transmitting, by executing themonitoring software with the processor, the encrypted usage data to theremote system via the network to report the usage data to the remotesystem; and inserting, by executing an instruction with the processor,an advertisement in the media stream, the advertisement selected basedon at least the reported usage data.
 12. The method of claim 11, furtherincluding downloading the monitoring software to memory via the network.13. The method of claim 12, further including obtaining an upgrade tothe monitoring software via the network.
 14. The method of claim 11,further including: gathering metadata associated with the media stream;and reporting the metadata to the remote system via the network.
 15. Themethod of claim 11, wherein the reporting of the usage data and thesystem data is performed in response to a request from the remotesystem.